The present invention relates to a programmable logic controller (PLC) for monitoring and controlling a device and a robot of a production line in industrial application, or a controller for monitoring and controlling various devices including an air conditioner, a security equipment, an illuminator, an elevator and the like installed in a building or at home, or devices including power, gas and water supply systems and the like for supporting an infrastructure. More particularly, the invention relates to a network controller connected to a network to perform communications with an external device, which necessitates both network communication processing and real-time control processing.
Controllers equipped with network communication functions are installed in various types of equipments and devices, and adapted to perform communications between a host and a terminal or a controller, alternatively between the controllers. At present, generally, priority assignment is first carried out in a fixed manner among operations (tasks) including control processing, network communication processing and the like, and then these tasks are executed and managed by using priority scheduling of a real-time OS. As an example of priority scheduling of the real-time OS available in the conventional art, “μITRON 4.0 Specifications” Chap. 3.2 (ITRON Division of TRON Association, edited by Hiroaki Takada under monitoring of Ken Sakamura) can be cited.
A technology is also described in JP-A-11-191002 (1999), which guarantees real-time execution of an important task by dynamically changing priority of tasks for controlling a device according to an operating state of the device, to which a controller is connected.
Reductions in size and cost of a controller are significant challenges. To meet the challenges, both control processing and network communication processing must be performed in coexistence on one microprocessor. Generally, the control processing executed on the controller requires a real-time operation, in which the processing must be completed within a predetermined time. On the other hand, the network communication processing of an information system represented by Ethernet or TCP/IP general in the world of Internet or WWW requires a guarantee of stable throughput, in which especially in reception of communication packets, packets irregularly sent in from an external device can be prevented from being left uncaptured.
In the priority scheduling of the conventional art for assigning priority in a fixed manner, various tasks are carried out by the following method.    (1) Low priority is assigned to the control processing, while high priority is assigned to the network communication processing. In this case, throughput is easily guaranteed, because execution on the controller is started from the network communication processing high in priority. On the other hand, the control processing is executed on the controller only in a state where the network communication processing high in priority is not actuated, i.e., there are no packets to be transferred. Thus, it is impossible to predict how long processor time is assigned, making it difficult to guarantee real-time execution.    (2) High priority is assigned to the control processing, while low priority is assigned to the network communication processing. In this case, it is possible to guarantee real-time execution of the control processing, because execution on the controller is started from the control processing high in priority. On the other hand, the network communication processing is executed on the controller only in a state where the control processing high in priority is not actuated at all. Thus, it is difficult to guarantee predetermined throughput.    (3) Equal levels of priority are assigned to the control processing and the network communication network. In this case, executable tasks are carried out on the controller according to an order of a queue. Thus, it is difficult to guarantee both real-time execution of the control processing, and throughput of the network communication processing.
In any case, in the fixed priority scheduling, it is possible to achieve at least one selected from the real-time execution of the control processing and the throughput of the network communication processing. However, it is difficult to achieve both.
On the other hand, the technology described in JP-A-11-191002 (1999) employs a configuration, where priority of tasks for controlling the device according to the operating state of the device, to which the controller is connected, is dynamically changed, different from the fixed priority scheduling. By changing the priority of the tasks, it is possible to guarantee real-time execution of, especially a task having highest priority assigned, or time for assigning the task to the processor. In this case, however, the real-time execution can be guaranteed only for the task of the highest priority. It is still difficult to guarantee both of the tasks of the control processing and the network communication processing.